#Python 3.6 - 286 241 224 bytes
Python 3.6 - 286 241 224 bytes
def x(L):X,Y=L.split();E,D=' '*11,'_'*12;print(f"""{' '*18}{D}
(\ ___ /) /{E} \\
( \ (‘o‘) / ) / {X+' '*(10-len(X))}\\
({E}) < {Y}
( ‘> <’ ) \{E} /
/ \ \{D}/
/ \
‘ – “ - ‘""")
Input: x("Silent Night")
Output:
____________
(\ ___ /) / \
( \ (‘o‘) / ) / Silent \
( ) < Night
( ‘> <’ ) \ /
/ \ \____________/
/ \
‘ – “ - ‘
Note - The version is 3.6
where string literal formatting was introduced. Hence, this won't work in earlier versions.