mesh edges still slightly visible after subdividing and shading smooth
try selecting the faces with visible edges(by that I mean press alt click the face to select all the faces surrounding the top and bottom part of the object), split, then limited dissolve. You would notice a significant difference.
PS. you need to fix the topology afterwards though.