pleTriwapt Sgpin (Triplet Swapping) Intro/Background

I was looking at a Flybuys card at Coles recently and noticed that if I took something like this:


Source, randomly found on the Internet 

And swapped some words around, I'd get this:



After I finished laughing (don't judge my sense of humour please),  I said to myself: "I need a program that can generate text like that". So I devised a set of rules for substring swapping and wrote yet another CGCC challenge!

The Challenge

Given a single string as input, output a string with its substrings swapped. This can be done by:


Splitting the string into chunks of three. The last triplet can possibly be shorter. (abcdefgh =&gt; [abc, def, gh])
Swap every triplet with every other triplet, leaving the last triplet in place if there is an odd amount of triplets.


The above bullet point more succinctly:


  [D]ivide the list into adjacent pairs and swap each pair ~ @FlipTack


Test Cases


Input->Output 
flybuys->buyflys
Once->eOnc
Triplet->pleTrit
Code Golf->e GCodolf
TopAnswers!->AnsTops!wer
Never gonna let you down->er Nevna gon yoletownu d
I'm Sorry, I Haven't a Clue-> SoI'm, Irryven Haa C't lue
Can I please have my vegetables back?-> I Canasepleve  havegmy bleetaacks b?
You are filled with determination-> arYouille fwited eteh dnatrmiion
->




Reference Program

Some Test Cases Explained

flybuys
[fly, buy, s] (split)
[buy, fly, s] (swapped)
buyflys

Once
[Onc, e] (split)
[e, Onc] (swapped)
eOnc

Triplet
[Tri, ple, t] (split)
[ple, Tri, t](swapped)
pleTrit

Code Golf
[Cod, e G, olf] (split)
[e G, Cod, olf] (swapped)
e GCodolf

TopAnswers!
[Top, Ans, wer, s!] (split)
[Ans, Top, s!, wer] (swapped)
AnsTops!wer


Rules


Input/output can be taken/given in any reasonable and convenient format
The input will not contain newlines
Strings can be of any length, and can be empty
Input will only contain printable ASCII characters
All standard loopholes are forbidden


Scoring

This is code-golf, so the answer with the lowest bytes wins
J, 13 bytes

[:;_2|.\_3&lt;\]


Try it online!

Example input: 'flybuys'


_3&lt;\] Box every group of 3

┌───┬───┬─┐
│fly│buy│s│
└───┴───┴─┘

_2|. Split that into groups of 2, and reverse each one:

┌───┬───┐
│buy│fly│
├───┼───┤
│s  │   │
└───┴───┘

[:; Raze the result:

buyflys