How to join booleaned objects without leaving seams?
If you join two objects into one, then boolean modifier between them is meaningless, since only one left. Actually, they can be merged after applying the modifier. That's for your question.

Furthermore, I think a better idea for such simple shape is to model it with a few steps, with some basic tools that Blender offers, which is also easy to do, and gets better result: