bisect plane normal (mesh and bmesh) how calc the 3th vector to mathutils.geometry?
The plane normal is the Cross Product of two vectors laying on that plane 


  N = normalize( Vect(P1,P2) X Vect(P1, P3) )    


where Pn is point on the plane 
all these calculation are done using the mathutils.geometry.normal(vectors) which takes 3 points and return the normal vector

Note: Normal direction depends on the Points order



Update

to get the third Point we use the function region_2d_to_vector_3d() which take a 2d coordinates and returns the a normalized vector of the view at this point ,then we add this vector to the point which we used its 2d coordinates to get a new one on the same line of sight (same plane ) , at last we pass the three points to the normal()

v3 =  view3d_utils.region_2d_to_vector_3d(viewport, area.spaces[0].region_3d, co_2d)
v3 = v3+ vert[1].co

normal =  mathutils.geometry.normal(vert[0].co,vert[1].co,v3)


Note you have to pass the the co_2d not co_2d_w to the bisect()

the file