You can't do it automatically, because you have very specifically told it to only return one element from each group - that's what First does!
Try this:
MyCollection.GroupBy(c => c.Attribute).SelectMany(g => g.Where(p => p.Prio == g.Max(h => h.Prio)))