The differential equaton apparently does not have an analytic solution.
Integrating it numerically is an option —
eqn = (x*exp(x)+y+exp(y)+3)*diff(x) + (x*exp(y)+x+2)*Dy == 0;
isoeqn = isolate(eqn,Dy)
isoeqn =

ySolx = dsolve(eqn,cond)
Warning: Unable to find symbolic solution.
[VF,Subs] = odeToVectorField(eqn)
VF =

Subs = 
eqnfcn = matlabFunction(VF, 'Vars',{x,Y})
eqnfcn =
@(x,Y)[-(exp(Y(1))+x.*exp(x)+Y(1)+3.0)./(x+x.*exp(Y(1))+2.0)]
[x,y] = ode45(eqnfcn, tspan, ic);
legend(string(Subs), 'Location','best')
Experiment to get different results.
.