Best implementation of motion controllers

I’ve been watching tons of tutorials to try and get started making a VR game, but there seems to be two common methods for implementing motion controllers.

  1. Adding them as components in the default pawn class
  2. (The way done in the vr template) Have a separate motion controller BP and then connect 2 of them to the pawn as objects.
  3. (Not seen) Making them children of the pawn, or HMD

I want to know the pros/cons of each method and, if none, at least what the differences in how each method handles communication would be.