Instantiate Position Rotation Error

Im Instantiating something for an inventory system, but whenever i clone it into my player, it is never in the right position, its position even changes based on in which direction i am facing when i pick it up.

 if (Input.GetKey("e") && rayhit.name == "Apistol")
                {
                    pickedItem = APistol;
                    defaultPos = new Vector3(4f, 0.2f, 2f);
                    defaultRot = Quaternion.Euler(-90, 0, 70);
                    PickUp();
                }

And this is in my Pickup method

 if (Player.GetComponent<TorchToggle>().item[0] == empty)
        { Player.GetComponent<TorchToggle>().item[0] = Instantiate(pickedItem, transform.position + defaultPos, Quaternion.identity * defaultRot, Equipables); }

It ends up in a multitude of positions and i want to find a way to regulate it.

hi;
did u write this code by your own ?

can u explain a little more with screen shots how u wanna this to be ?