The dot in .== is for broadcasting, it ‘maps’ the operator over its input collection. So it’s redundant here, the argument of map is also mapped over the collection. Therefore, you should drop it: map( x->x==3, y), not map( x-> x.== 3, y).
Furthermore, findall takes a ‘mapped’ function as its first argument, too, so you can just do this instead:
findall( x->x==3, y)
Or, more tersely,
findall(==(3), y)
No reason to use findall, mapand broadcast, when just findall will do.