This seems like a place for using the Boolean Modifier. You can use one shape to either cut or join with the other. So, you could use the barrel section to cut out the turret section to exactly the overlapping shape. The below example uses Difference. The modifier is on the body that I’m keeping, and use the cubes as the Boolean object. It should play nice with the subsurface modifier as well.

