Count without 3
Brachylog, 10 bytes
<.='e3:I'*
Try it online!
Explanation
(?)<. Output > Input
.= Assign a value to the Output
. 'e3 3 cannot be an element of the Output (i.e. one of its digits)
3:I'*(.) There is no I such that 3*I = Output
JavaScript (ES6), 30 bytes
f=n=>++n%3*!/3/.test(n)?n:f(n)
Python 2, 73 66 43 bytes
Thanks to xnor for telling me I was being silly by using 2 variables, and thanks to Mitch Schwartz too.
x=~input()
while'3'[:x%3]in`x`:x-=1
print-x