It is pretty easy, IF you want to copy existing Dataset & zVols as they are now. I have a script to copy my root pool to alternate boot media on my home Linux PCs, (desktop, laptop & media server).
Replace ${MY_SNAP} with a unique snapshot name. Then replace the source and destination pool names.
Don’t forget to set any defaults that you want the Datasets to inherit on your destination pool. Like compression or block sizes. And if you have Datasets that need non-default settings, change the source before the move.