How to move data between 2 Android phones? I'm trying to move data from a Pixel3 to a Pixel1.

Bluetooth

I am able to pair the devices, but for some reason they are disconnected as soon as I switch to another app (to a Files app to copy data). I'm not seeing any errors.

USB

I am able to connect the devices via USB, but only one way! So I can move data from Pixel1 to Pixel3, but I'm not able to move data from Pixel3 to Pixel1. In settings there is a "USB controlled by..." switch, but when I press it, it tries to switch for 10 seconds and then times out. Again, no error message to tell me what went wrong.

Surely there must be a way to move data between 2 Android phones? I don't want to use a computer/cloud as an intermediary step.
For the first question, where you did connect between two devices?
It's highly recommended you to build connection in Service as it can be run in background for long time. 
If you're connecting two devices simply in Activity then when it's being paused or destroyed, Your connection will be destroyed either.