create a cylinder with start and ending points

Hi All
I’m trying to draw a cylinder between two Vector3. Don’t find the way to do it.
p1 is starting
p2 is ending
p3 is center

public void create_cylinder(Vector3 p1, Vector3 p2, Vector3 p3) {
GameObject segObj = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
segObj.transform.localPosition = p3;
segObj.transform.localScale = new Vector3(segObj.transform.localScale.x,Vector3.Distance(p1,p2)/2.0f,segObj.transform.localScale.z);
segObj.transform.position = p3; //placebond here
segObj.transform.LookAt(p1);
}

Actually p3 is not the centre, I have that point also wrong

Far easier to get the center point from the two end points.

Vector3 center = (p1 + p2) * 0.5f;