CoreMotion Aligning IPhones CMAttitude

I'm doing a simple experiment with 2 iphones. I've made a simple app that subscribes to device motion updates (with reference frame xTrueNorthZVertical). I've aligned the phones to be close to the same rotation (it can't be more than 3-4 degrees). Generally regardless of how I move the phones roll and pitch match up well on both phones. The yaw, however, always has a discrepancy between the 2 devices. This can be 15 to 45 degrees depending on the run and the position I've moved them to. Is my assumption that the roll, pitch, and yaw of CMAttitude should more or less match up if I'm holding them in the same rotation (more or less) relative to the reference frame (which I've set to be the same and not arbitrary). Is there a certain degree of error I should be aware of or are there other settings I should be looking into? Here's a small code snippet of my settings:

self.motion.deviceMotionUpdateInterval = 1.0
self.motion.showsDeviceMovementDisplay = true
self.motion.startDeviceMotionUpdates(using: .xTrueNorthZVertical)

The magnetic field accuracy always reads "high"