No, don't need any parens (and remove the semicolon, too) in the function dummy argument list, those are surrogate names for the actual arguments passed.
function [Av_k2] = EE_TF(fs,G1,G2,G3,C1,C2);
does exactly what you want...when you call it with
inside the function each Gn is the value passed, NOT the array Gn in the main program...it's a whole new variable with scope only within the function.
However, the power in MATLAB is to vectorize your functions so you can call them without the loop construct in the main program...
To do that, use the "dot" operators--in your case that's all that looks like is needed--
function [Av_db, Avk_dB] = EE_TF(fs,G1,G2,G3,C1,C2);
Av_k2= A0./(B2.^ +B1+B0);
Avk_dB = 20*log(Av_k);
Av_db = sum(Av_k_dB);
I went ahead a moved the dB and total gain into the function as well--and returned the stage raw gains as an optional second output if they're wanted/needed as well.
Shouldn't log be log10, though?