How can I cut a complex Blender object in half?
Bisect Tool
If you need precise adjustment - open tool properties (left-bottom at 3D viewport editor) and set cut numerically.
For 3D print you would need to have a mesh as manifold, so check Fill option.

After Bisect operation, when cut edges are selected search for Edge Split to separate a half. With mouse cursor close to an one half click L to select linked (or box select.

Or box select a half and click P &gt; Separate by Selection