How do you move or copy a O365 SharePoint subsite and all of its children subsites in one site collection to another site collection? I have looked at using PowerShell but it does not seem possible without using CSOM. Can anyone guide me?
You can use the following to copy site to another site within the site collection Site Setting --> Site Administration --> Content and structure --> Select the site from the left navigation and move
To copy to another site collection: try using copy site as a template (include content) and then use the template file to create a new site under the other site collection
The powershell coverage is weak, so you aren't going to have export options like you would on prem. You would have to create a script with CSOM, as a compiled exe or in powershell, to perform the provisioning and copying data around.
If this is a one off scenario that might be ok, if you foresee the need to do this often, you might want to invest in a third party tool to help you. There are plenty of vendors in this space, like Sharegate, Metalogix, Avepoint, etc.
For SharePoint Online - the way to do this is via PnP :
Get-PnPProvisioningTemplate -Url -Out #to get the provisioning Template Apply-PnPProvisioningTemplate -Path #to Apply the template to the new site / Site Collection
This will get all of the site columns, site content types, term store, list definitions, (empty) lists, Site Structure and copy them to the new site.
If you want content moved across as well, then that needs more PowerShell, but is doable.
Open the site from SharePoint Designer and click on the Save Site as Template option. Then just build a copy from that template.