Most easiest way would be to use the Data Broker.. That’s not a real “move” but “copy” of devices to other tenants. Still the subtenant can work with the device as it would be added in the tenant and you get updates like in the management tenant.
In the data broker you can even decide that you want to skip specific events, fragments to be copied to the target tenant
For a real migration there is open-source tool
It leverages the API and actually moves everything related to a device to a new tenant (including Dashboards etc.). I’m not so sure about the datapoint-library.