You need a bit of math here if you dont wanna use ExtrudeGeometry. I dont have a solution, but maybe this helps. The cube has 4 of 8 points/corners already, you just have to calculate the other 4.
You wanna get the length of one edge by calculating the distance from one point to the other.
let length = p1.distanceTo(p2)
Then you wanna know the normal/direction which the current rectangle is pointing to (where it is facing), to get the direction you want to extrude to. Maybe someone knows how to get the normal more easily?
You could check the angle of the line from p1 to p2 and add 90° to have the right angle.
You have to convert your angle to a vector3 and normalize it. for example (0, 0, 1) is pointing along the z axis.
Or use the THREE.Face3 to get the normal:
let geometry = new THREE.Geometry()
geometry.vertices = [
p1,
p2,
p3
];
let face =new THREE.Face3(0, 1, 2)
geometry.faces.push(face)
geometry.computeVertexNormals()
geometry.computeFaceNormals()
console.log('FACE', geometry.faces[0].normal)
Go through all 4 points and add the length of the edge multiplied by the normalized normal vector
Example
// Point
let p1 = new THREE.Vector(1, 2, 5)
// Normal/ Direction vector
let normal = new THREE.Vector(0, 0, 1)
// Edge length
let length = 2
// Multiply "length" to xyz of normal
// (0, 0, 1) * (2, 2, 2) = (0, 0, 2)
normal.multiplyScalar(length)
// Duplicate your your 4 points and add the normal
let p5 = new THREE.Vector3().copy(p1)
// (1, 2, 5) + (0, 0, 2) = (1, 2, 7)
p5.add(normal)