It's okay to use a <p> tag as a group if the meaning of your group is the same as the meaning of the <p> tag:
The <p> HTML element represents a paragraph. Paragraphs are usually represented in visual media as blocks of text separated from adjacent blocks by blank lines and/or first-line indentation, but HTML paragraphs can be any structural grouping of related content, such as images or form fields.
If the meaning is not the same, this could be a violation of 1.3.1 Info and Relationships. Using a <p> tag is better than using non-semantic elements, but you should use the appropriate role when it exists. There's not one good solution for every button group. A few days ago I implemented a tab pattern, and it used a <div role="tablist"> as a parent for my <button role="tab">.
Accessibility is a spectrum and the more you work on adding a meaning (semantics) to your document structure, the easier it will be for assistive technologies to retrieve and display what you meant. There's no better way to validate if something is accessible than conducting tests with disabled users.
Regarding WCAG, it's okay to group buttons within a P-tag, in most cases.