The short answer is that you can't without rooting. If ALL your apps use Google cloud backup, then it'll work great. But that's not very likely.
Here's what I do when I switch phones, without root:
Use Google cloud restore. This gets app data for supported apps.
Run the built-in backup and restore features for any apps that have them. A few examples of such apps off the top of my head are Lawnchair, Eternity for Lemmy, Relay for Reddit, and Signal.
Copy internal storage (like downloads, photos, etc.) using a USB cable with MTP or ADB. This gets non-app-specific files.
Your contacts app should have an export feature. If you're using your Google account to store contacts, then you don't need to bother with this.
That gets almost everything. Over the years I have mostly stopped using apps that lock data in protected locations with no way to export. The biggest problem is that there's no easy way to see which apps use Google backup. IIRC there's a way to check in your Google settings on the web but not directly on Android.
Edit: a little historical context in case you find outdated results in web searches: this used to be a lot easier. On older OSes, adb backup
could pull ALL app data, and the were some user-friendly apps like Helium that used the same mechanism to back up and restore arbitrary app data. Google locked that down at some point (I forget when, maybe Android 10?) and it's not possible without root now.