It's not a shading problem, you have inner faces, as soon as you give your object a *Subdivision Surface* modifier it makes them surface through the outer faces, so the best is probably to remove them:

[![enter image description here][1]][1]

Message to Gorgious: *Select All by Trait > Interior Faces* won't work in that cases as these inner faces are connected to the outer   ;)


  [1]: https://i.sstatic.net/JNhFds2C.jpg