If you render an animation, you might achieve what you want by having two instances of Blender running. One renders with CPU, the other with GPU. Both use the same file and the same folder to render the image sequence.
You can tell blender in the Output panel to create placeholders and to not overwrite existing files. Placeholder creates an empty file when the rendering of a frame starts and disabling Overwrite tells Blender to leave this particular frame in peace if it already exists. This is the simplest approach to creating a render farm.
I must admit that my best graphics card is too old to test this approach myself. If it works, you might also want to check temperatures and render for a few hours before you leave the equipment unattended. Everything at your own risk.
If you want to render a single image, you can set a different seed in the Sampling panel and render for example 2000 samples with the CPU and 4000 with the GPU and overlay both images in the compositor.