So why are we calling these things "groups", anyway? Technically, a group is a set of elements and an operation on the set, which takes two elements and returns a third. (Also called binary operation.) There's closure - take two elements, operate, and you get another element, not something else. There's associativity - the order of a sequence operations matters, as we've seen with Dih3, but given a sequence it doesn't matter how you group them. a(bc) = (ab)c. And groups have an identify element, and a unique inverse for every element. All of the groups we've seen have these properties - closure, identity, and for every element there's some element such that when you combine them you get the identity. tt = I. ss2 = I.
Note that technically, the group of Dih3, say, isn't the set of positions of the triangle, it's the set of the motions of the triangle, and the group operation is simply that of doing one operation after another, with the result being whichever motion would have given the current position of the triangle. The labels s and t can applied both to positions of the triangle and to the motions which produce the positions; the set of group elements is actually the motions.
The ideas here can be made more general and more specific. Semi-groups just have closure and associativity; think of an arbitrary graph. There are also rings and fields, as well as other categories, which are groups with more constraints on them. But I won't go into details about those.