How to set references when Instantiating an object on new player join.

Options
My current code works fine for the first player. When that player joins the room, based on a reference on the player object, references to the head and hands are all made. The problem I'm facing is when additional players join, they only set their own references because OnJoinedRoom is called for them. What is the right way for me to make sure each time a player joins, all the other players set their references correctly.
public void OnJoinedRoom()
        {
            Debug.Log("OnJoinedRoom() called by PUN. Now this client is in a room. From here on, your game would be running. For reference, all callbacks are listed in enum: PhotonNetworkingMessage");
            playerHead = PhotonNetwork.Instantiate(headPrefab.name, VRManager.Instance.head.transform.position, VRManager.Instance.head.transform.rotation, 0);
            playerLeftHand = PhotonNetwork.Instantiate(lHandPrefab.name, VRManager.Instance.leftHand.transform.position, VRManager.Instance.leftHand.transform.rotation, 0);
            playerRightHand = PhotonNetwork.Instantiate(rHandPrefab.name, VRManager.Instance.rightHand.transform.position, VRManager.Instance.rightHand.transform.rotation, 0);
            GameObject player = PhotonNetwork.Instantiate(playerPrefab.name, VRManager.Instance.player.transform.position, VRManager.Instance.player.transform.rotation, 0);
            player.GetComponent<VRIK>().solver.spine.headTarget = playerHead.transform.FindChild("HeadPosition");
            player.GetComponent<VRIK>().solver.leftArm.target = playerLeftHand.transform.FindChild("LeftHandPosition");
            player.GetComponent<VRIK>().solver.rightArm.target = playerRightHand.transform.FindChild("RightHandPosition");
        }