No idea what to do to make it look smooth after subdiv
Have you set your object as shade smooth? if yes, go to Objects > Shade flat
I would try using the 'Intersect' or 'Union' modes for the Boolean modifier. Add it to either part of your model and select the other part in the "Object:" box.