I would use something like this
moleculeAlign2D[m1_, m2_] := Catch @ Module[
{mol1, mol2, mcs, aligned},
mol1 = If[MemberQ[Options @ m1, HoldPattern[AtomDiagramCoordinates -> _List]],
m1,
MoleculeModify[m1, "ComputeAtomDiagramCoordinates"]
];
mol1 = Molecule[mol1,
AtomDiagramCoordinates -> Automatic,
AtomCoordinates -> MapApply[{#, #2, 0.}&,
mol1["AtomDiagramCoordinates", IncludeHydrogens -> "ExplicitOnly"]
]
];
mol2 = Molecule[mol2 = MoleculeModify[m2, "ComputeAtomDiagramCoordinates"],
AtomDiagramCoordinates -> Automatic,
AtomCoordinates -> MapApply[{#, #2, 0.}&,
mol2["AtomDiagramCoordinates", IncludeHydrogens -> "ExplicitOnly"]
]
];
mcs = MoleculeMaximumCommonSubstructure @ {mol1, mol2};
aligned = MoleculeAlign[mol1, mol2, mcs];
If[!MoleculeQ[aligned], Throw[$Failed]];
Molecule[mol2,
AtomCoordinates -> Automatic,
AtomDiagramCoordinates -> Part[
aligned["AtomCoordinates",
TargetUnits -> None, IncludeHydrogens -> "ExplicitOnly"
],
All, 1;;2
]
]
]
To test
m1 = Molecule@"N1(c2c(Sc3c1cccc3)cccc2)CCCN(C)C";
m2 = Molecule@"C\\1(/c2c(Sc3c1cccc3)ccc(c2)Cl)=C\\CCN(C)C";
m2b = moleculeAlign2D[m1, m2];
GraphicsRow[MoleculePlot /@ {m1, m2b}]

Row[{Rotate[MoleculePlot@mol1, -Pi/2], MoleculePlot@mol2}]
? $\endgroup$