How to run enrichment analysis of protein functional annotation?
I would recommend R instead of sticking to websites.

There are many tools for enrichment analysis. I like to use GOseq, which is initially made for RNAseq data, but can also be used for proteins (I have used it for proteomics). You can use the length of the protein instead of transcript length (to correct for length bias), or you can exclude the length information by just using the hypergeometric method.

See manual for code.

Subsequently you can use gogadget, a tool I made for visualization of GOseq results with a heatmap or cytoscape network.

Additionally, you might wanna take a look at clusterProfiler. With this package you can do enrichment analysis for many clusters in parallel.