How can I make 2 viewports in Blender python have the same orientation?
Changing the values works for me. The below script changes all 3D views to the first one (by internal order). This does not work in all cases but in most.

C = bpy.context
viewports_3D = []
for area in C.screen.areas:
    if area.type == 'VIEW_3D':
        viewports_3D.append(area)

attributes=['view_matrix', 'view_distance', 'view_perspective', 
            'use_box_clip', 'use_clip_planes', 'is_perspective',
            'show_sync_view', 'clip_planes']
ref_viewport = viewports_3D[0].spaces.active.region_3d

for viewport_3D in viewports_3D:
    for attribute in attributes:
        setattr(viewport_3D.spaces.active.region_3d, attribute, getattr(ref_viewport, attribute))