JoyCon Droid with non-rooted phone?
Use a spare rooted Android device to help a non-rooted one connect.

This workaround is UNTESTED but should be possible.

What you need:

1) On the rooted Android, follow the Bluetooth++ guide to change the Device Class to 002508
2) Find the Bluetooth MAC Address of your non-rooted Android and change the rooted Android Bluetooth MAC address to the Bluetooth MAC address of the non-rooted Android. Instructions from step 3 here. (Instead of a real controller, you will change the MAC address to the non-rooted phone.)
3) Now connect your rooted phone that has copied your non-rooted phone's Bluetooth MAC address to your Switch using JoyCon Droid and make sure it's paired.
4) Your Switch should remember that Bluetooth MAC Address so you can disconnect the rooted Android now.
5) Try to connect with your non-rooted Android.

This is not guaranteed to work. This is considered a temporary workaround since you would have to repeat these steps if you clear the paired devices, or if Nintendo releases a system software update like they have done with 12.0.1

We're also not sure if they randomly unpair controllers.

Note: The rooted Android does not necessarily need Magisk. It just has to be rooted in general so you are able to change your device class, enable Bluetooth HID Profiles manually if needed, or change Bluetooth MAC address manually. Magisk is usually easier since you can just flash a module and remove/disable the modules if something goes wrong.