scoping – Keep irrelevant variables outside function arguments


I want to define several functions of variables x,y say

f1[x_,y_]:=x^2+y
f2[x_,y_]:=f1[x_,y_]+x f1[x,y]
f3[x_,y_]:=D[f1[x,y],x]+f2[x+1,y]

Here the x variable is crucial for relation between functions while the other one y kinda just hangs in the background. It is tedious and not instructive to write it out explicitly when defining all these functions. I would like to somehow get rid of this explicit dependence on y in the notation, in the spirit of mathematical notation when one only writes relevant arguments keeping in mind that there may be other. Eventually the final function needs to be called with y specified, but in the intermediate computations it can be assumed fixed. Is there a way to implement this?